"""
微信聊天助手冒烟测试配置
"""
import os
import logging
from typing import Dict, Any, List

# 测试配置
SMOKE_TEST_CONFIG = {
    # 数据库配置
    "database": {
        # 使用绝对路径的SQLite数据库
        "url": os.path.join(os.path.dirname(os.path.abspath(__file__)), "wechat_assistant_smoke_test.db"),
        "echo": True,  # 打印SQL语句
        "create_tables": True,  # 自动创建表
    },
    
    # 微信配置
    "wechat": {
        "data_dir": os.getenv("WECHAT_DATA_DIR", "./wechat_data"),
        "auto_login": False,  # 是否自动登录，建议手动登录
        "timeout": 30,  # 操作超时时间（秒）
    },
    
    # 测试配置
    "testing": {
        "run_message_sending": False,  # 是否执行发送消息测试（谨慎使用）
        "test_session_name": None,  # 指定测试会话名称，None表示自动选择
        "max_messages_to_save": 10,  # 最多保存的消息数量
        "pua_test_texts": [
            "你总是这样，永远不理解我的感受",
            "如果你爱我，就应该知道我想要什么",
            "没有我你什么都不是",
            "你太敏感了，我只是开个玩笑",
            "一般人都能理解我的意思，只有你不行"
        ],
        "test_message": "这是一条自动化测试消息，请忽略。",
    },
    
    # 日志配置
    "logging": {
        "level": logging.INFO,
        "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
        "file": "./logs/smoke_test.log",
        "console": True,
    }
}

# 测试用户配置
TEST_USERS = [
    # 可以添加特定测试用户
    {
        "wechat_id": "test_user_1",
        "nickname": "测试用户1",
        "relationship_type": "friend",
    },
    {
        "wechat_id": "test_user_2",
        "nickname": "测试用户2",
        "relationship_type": "colleague",
    }
]

# PUA模式测试数据
PUA_TEST_PATTERNS = [
    {
        "pattern": r"(你总是|你从来不|你永远)",
        "category": "gaslighting",
        "description": "煤气灯效应：通过否定对方的感受让对方怀疑自己",
        "severity": 0.8,
    },
    {
        "pattern": r"(没有我|离开我|你需要我)",
        "category": "isolation",
        "description": "隔离控制：让对方感到离不开自己",
        "severity": 0.9,
    },
    {
        "pattern": r"(如果你爱我|真正爱我的人|证明你爱我)",
        "category": "guilt_tripping",
        "description": "情感操控：利用爱情让对方产生罪恶感",
        "severity": 0.7,
    },
] 